import numpy as np
import matplotlib.pyplot as plt
from sympy import symbols, diff

# 中文显示
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 符号计算
t = symbols('t')
s = 2*t**2 + 3*t + 1
velocity = diff(s, t)
acceleration = diff(velocity, t)

print(f"位移函数: s(t) = {s}")
print(f"速度函数: v(t) = {velocity}")
print(f"加速度函数: a(t) = {acceleration}")

# 数值可视化
t_values = np.linspace(0, 5, 100)
s_values = 2*t_values**2 + 3*t_values + 1
v_values = 4*t_values + 3
a_values = np.full_like(t_values, 4)  # 加速度恒为4

fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(15, 4))

ax1.plot(t_values, s_values, 'b-', linewidth=2)
ax1.set_title('位移-时间关系')
ax1.set_xlabel('时间 t')
ax1.set_ylabel('位移 s(t)')
ax1.grid(True)

ax2.plot(t_values, v_values, 'r-', linewidth=2)
ax2.set_title('速度-时间关系')
ax2.set_xlabel('时间 t')
ax2.set_ylabel('速度 v(t)')
ax2.grid(True)

ax3.plot(t_values, a_values, 'g-', linewidth=2)
ax3.set_title('加速度-时间关系')
ax3.set_xlabel('时间 t')
ax3.set_ylabel('加速度 a(t)')
ax3.grid(True)

plt.tight_layout()
plt.show()